/*----------------------------------------------------------------
 * 				Parser
 * 
 * Descripcion: clase que se encarga de procesar las instrucciones
 * ingresadas por el usuario.
 * --------------------------------------------------------------*/

import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;


public class parser {

	public List parse(String lista) throws Exception{
		
		List objs = new LinkedList();
		
		Scanner scn = new Scanner(lista);
		
		String cache;
		
		if (!scn.next().equals("("))
			throw new Exception();
		
		do{
			
			cache = scn.next();
			
			if(!cache.equals(")")){
				
				if(cache.equals("(")){
					
					String tmp;
					
					do{
						tmp = scn.next();
						
						cache = cache + " " + tmp;
					}while(!tmp.equals(")"));
					
					objs.add(parse(cache));
					
					//objs.add(parse(cache));
					
				}
				else{
					
					objs.add(cache);
				}
			}
		}while(!cache.equals(")"));
		
		return objs;
		
	}
}
